=========================================================================  
ISTRUZIONI e SPECIFICHE per il progetto di recupero 2014/15  
========================================================================  
Il progetto prevede lo sviluppo di un programma che lavora su matrici sparse  
  
------------------------------------------------  
Estrarre il materiale dal KIT  
------------------------------------------------  
Creare una directory temporanea, copiare kit_prog.tar    
nella directory e spostarsi nella directory appena creata. Es.  
  
$$ mkdir Progetto  
$$ mv kit_prog.tar Progetto  
$$ cd Progetto  
  
S-tarare i file del kit con  
  
$$ tar xvf kit_prog.tar  
  
questo comando crea nella directory corrente una directory "SPARSE" con i seguenti file  
  
$$ ls SPARSE  
smat2015.pdf		: specifiche del progetto  
  
sparse.h		: file che contiene la definizione del tipo di dato   
			"matrici sparse" ed i prototipi di alcune funzioni  
 			da realizzare (NON MODIFICARE)  
  
sparse_docenti.c	: file che contiene l'implementazioni della  
                        funzione di stampa fornita dai docenti  
 			(NON MODIFICARE)  
  
test-*.c  
Makefile  
			: programmi di test e Makefile per i test e   
                        la consegna dell'assegnamento   
			(NON MODIFICARE se non nelle parti indicate)  
  
DATI/*			: file di dati da elaborare e risultati attesi   
                          per i test (NON MODIFICARE)  
  
README			  : questo file  
  
gruppo-check.pl		: uno script Perl che controlla il formato del file  
			  gruppo.txt prima di effettuare la consegna  
			  (NON MODIFICARE)  
  
gruppo.txt		: un file di esempio di specifica del gruppo  
			  (solo 1 studente per gruppo)  
			  (deve essere aggiornato con i dati di chi consegna,  
			  secondo il formato esemplificato)  
  
========================================================================  
ISTRUZIONI per la realizzazione  
========================================================================  
  
Il progetto prevede la realizzazione di un programma che permette di   
effettuare operazioni su matrici sparse. Le specifiche del programma si   
trovano nel file smat2015.pdf che deve essere letto oaccuratamente prima   
di proseguire.  
  
Le strutture dati da utilizzare per la realizzazione delle matrici sparse   
e alcune funzioni su tali matrici sono definite nel file sparse.h.  
L'implementazione della funzione di stampa e' fornita nel file sparse_docenti.c.  
  
Le funzioni definite in sparse.h devono essere implementate in un unico   
file "sparse.c".  
I commenti in sparse.h spiegano il comportamento delle varie funzioni,  
il significato dei parametri ed i valori restituiti secondo la usuale  
sintassi doxygen usata negli assegnamenti.  
  
Conviene testare le funzioni man mano che vengono sviluppate con dei  
main() di test evitando di scrivere tutto il codice prima di testarne  
il funzionamento.    
Questo permette di localizzare molto meglio errori ed anomalie.  
Solo quando siamo ragionevolmente convinti della correttezza del  
codice si puo' passare al testing automatico del codice con i test  
forniti dai docenti.   

Il main() del programma smat ed eventuali altre funzioni devono essere realizzate in un file separato smat.c.
  
------------------  
Come procedere :  
-----------------  
  
1) leggere attentamente le specifiche e capire il funzionamento il codice di test  
   fornito dai docenti   
  
2) implementare le funzioni richieste ed effettuare testing  
   preliminare utilizzando programmi sviluppati allo scopo  
  
3) testare il software con i test forniti dai  
  docenti.   
  
       bash:~$ make test1  
       bash:~$ make test2  
       bash:~$ make test3  
  
  NOTA: (1) il file sparse.c si deve trovare nella directory SPARSE  
  (2) E' importante che il test fornito dai docenti venga effettuato solo su  
  un programma gia' funzionante e testato altrimenti i risultati  
  possono essere di difficile interpretazione, fuorvianti o inutili.  
  
4) realizzare il resto del programma testandolo opportunamente in modo che funzioni secondo le specifiche fornite nel documento smat2015.pdf  
  
5) preparare la documentazione: ovvero commentare adeguatamente il/i file che  
   contengono la soluzione  ed inserire un' intestazione contenente il nome  
   dello sviluppatore ed una dichiarazione di originalita'   
  
   /** \file pippo.c  
       \author Nino Bixio 123456  
     Si dichiara che il contenuto di questo file e' in ogni sua parte opera  
     originale dell' autore.  */  
  
  
6) aggiornare il file "gruppo.txt" con nome e dati  
  
7) inserire nel makefile il nome dei file da consegnare (smat.c sparse.c) e   
   del file contenente la relazione (PDF)  
   (variabile FILE_DA_CONSEGNARE)  
  
8) consegnare il file ESCLUSIVAMENTE eseguendo  
  
      bash:~$ make consegna  
  
   e seguendo le istruzioni.   
   Il target consegna crea un file tar che deve essere inviato  
   all'indirizzo del docente insieme a un file PDF con la discussione   
   degli esercizi con subject  
  
   "info15: consegna progetto di recupero"  
  
   SE IL MAKE non funziona nel vostro ambiente di lavoro, consegnare
   un file TAR contenente ESCLUSIVAMENTE il file gruppo.txt, la
   relazione formato PDF ed i file sviluppati (sparse.c smat.c). Il
   nome del file tar deve contenere CORSO di appartenenza, nome,
   cognome e matricola (che devono essere ripetuti nella mail di
   consegna) Ad esempio nel caso sello studente Bixio il file puo'
   chiamarsi
     
   Anino.bixio.123456-a1.tar  
  
   generato con  
  
   tar cvf  Anino.bixio.123456-a1.tar ./gruppo.txt ./sparse.c .....  
  
   Tutte le consegne verranno confermate con un messaggio entro 2/3  
   giorni all'indirizzo da cui e' stata effettuata la consegna. In  
   caso questo non si verifichi contattare il docente.  
     
     
---------------------------------------  
 NOTE IMPORTANTI: LEGGERE ATTENTAMENTE  
---------------------------------------  
  
1) gli eleborati contenenti tar non creati con "make consegna" o
   comunque seguendo le istruzioni riportate sopra non verranno
   accettati (gli studenti sono invitati a controllare che il tar
   contenga tutti i file richiesti sopra con il
   comando " tar tvf nomefiletar " prima di inviare il file)
  
2) tutti gli elaborati verranno confrontati fra di loro con tool automatici  
   per stabilire eventuali situazioni di PLAGIO. Se gli elaborato sono   
   ragionevolmente simili verranno scartati.  
  
3) Chi in sede di orale risulta palesemente non essere l'autore del software  
   consegnato in uno degli assegnamenti dovra' ripetere l'esame  
  
4) Tutti i comportamenti scorretti ai punti 2 e 3 verranno segnalati  
   ufficialmente al presidente del corso di laurea  
  
  
